﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using NangLuongTieuDiemDTO.DTO;
using NangLuongTieuDiemBUS.BUS;
using NangLuongTieuDiemBUS.SDK;

namespace NangLuongTieuDiemBUS
{
    public class NangLuongTieuDiem_Management
    {
        #region "[ChiTietSanPhamHoaDon]"
        #region "[Insert]"
        /// <summary>
        /// thêm 1 đối tượng ChiTietSanPhamHoaDon
        /// </summary>
        /// <param name="ctspDto">đối tượng ChiTietSanPhamHoaDon cần thêm</param>
        /// <returns></returns>
        public static int ChiTietSanPhamHoaDon_Insert(ChiTietSanPhamHoaDonDTO ctspDto)
        {
            int IDResult = -1;
            try
            {
                BUS.ChiTietSanPhamHoaDonBUS m_Handle = new BUS.ChiTietSanPhamHoaDonBUS();
                IDResult = m_Handle.Insert(ctspDto);
            }
            catch (Exception ex) 
            {
                InSert_LoiHeThong("ChiTietSanPhamHoaDon_Insert", ex);
            }
            return IDResult;

        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng ChiTietSanPhamHoaDon
        /// </summary>
        /// <param name="ID">mã đối tượng ChiTietSanPhamHoaDon cần xóa</param>
        /// <returns></returns>
        public static bool ChiTietSanPhamHoaDon_Delete(int ID)
        {
            // Kiem tra Business Rule



            // Xoa
            bool IDResult = false;
            try
            {
                BUS.ChiTietSanPhamHoaDonBUS m_Handle = new BUS.ChiTietSanPhamHoaDonBUS();
                IDResult = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietSanPhamHoaDon_Delete", ex);
            }
            return IDResult;
        }

        #endregion

        #region "[Update]"
        /// <summary>
        /// Cập nhật 1 đối tượng ChiTietSanPhamHoaDon
        /// </summary>
        /// <param name="ctspDto">đối tượng ChiTietSanPhamHoaDon cần cập nhật</param>
        /// <returns></returns>
        public static bool ChiTietSanPhamHoaDon_Update(ChiTietSanPhamHoaDonDTO ctspDto)
        {
            // Kiem tra Business Rule



            // Sua
            bool IDResult = false;
            try
            {
                BUS.ChiTietSanPhamHoaDonBUS m_Handle = new BUS.ChiTietSanPhamHoaDonBUS();
                IDResult = m_Handle.Update(ctspDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietSanPhamHoaDon_Update", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng ChiTietSanPhamHoaDon
        /// </summary>
        /// <returns></returns>
        public static List<ChiTietSanPhamHoaDonDTO> ChiTietSanPhamHoaDon_GetAll()
        {
            List<ChiTietSanPhamHoaDonDTO> dsctspDto = new List<ChiTietSanPhamHoaDonDTO>();
            try
            {
                BUS.ChiTietSanPhamHoaDonBUS m_Handle = new BUS.ChiTietSanPhamHoaDonBUS();
                dsctspDto = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietSanPhamHoaDon_GetAll", ex);
            }
            return dsctspDto;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lấy 1 đối tượng ChiTietSanPhamHoaDon theo khóa chính
        /// </summary>
        /// <param name="ID">mã đối tượng ChiTietSanPhamHoaDon</param>
        /// <returns></returns>
        public static ChiTietSanPhamHoaDonDTO ChiTietSanPhamHoaDon_SelectByPrimaryKey(int ID)
        {
            ChiTietSanPhamHoaDonDTO ctspDto = new ChiTietSanPhamHoaDonDTO();
            try
            {
                BUS.ChiTietSanPhamHoaDonBUS m_Handle = new BUS.ChiTietSanPhamHoaDonBUS();
                ctspDto = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietSanPhamHoaDon_SelectByPrimaryKey", ex);
            }
            return ctspDto;
        }
        #endregion
        #endregion

        #region "[ChiTietThietBiHoaDon]"

        #region "[Insert]"
        /// <summary>
        /// thêm 1 đối tượng ChiTietThietBiHoaDon
        /// </summary>
        /// <param name="cttbDto">đối tượng ChiTietThietBiHoaDon cần thêm</param>
        /// <returns></returns>
        public static int ChiTietThietBiHoaDon_Insert(ChiTietThietBiHoaDonDTO cttbDto)
        {
            int IDResult = -1;
            try
            {
                ChiTietThietBiHoaDonBUS m_Handle = new ChiTietThietBiHoaDonBUS();
                IDResult = m_Handle.Insert(cttbDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietThietBiHoaDon_Insert", ex);
            }
            return IDResult;

        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng ChiTietThietBiHoaDon
        /// </summary>
        /// <param name="ID">mã đối tượng ChiTietThietBiHoaDon</param>
        /// <returns></returns>
        public static bool ChiTietThietBiHoaDon_Delete(int ID)
        {
            // Kiem tra Business Rule



            // Xoa
            bool IDResult = false;
            try
            {
                ChiTietThietBiHoaDonBUS m_Handle = new ChiTietThietBiHoaDonBUS();
                IDResult = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietThietBiHoaDon_Delete", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Update]"
        /// <summary>
        /// Cập nhật 1 đối tượng ChiTietThietBiHoaDon
        /// </summary>
        /// <param name="cttbDto">đối tượng ChiTietThietBiHoaDon cần cập nhật</param>
        /// <returns></returns>
        public static bool ChiTietThietBiHoaDon_Update(ChiTietThietBiHoaDonDTO cttbDto)
        {
            // Kiem tra Business Rule



            // Sua
            bool IDResult = false;
            try
            {
                ChiTietThietBiHoaDonBUS m_Handle = new ChiTietThietBiHoaDonBUS();
                IDResult = m_Handle.Update(cttbDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietThietBiHoaDon_Update", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng ChiTietThietBiHoaDon
        /// </summary>
        /// <returns></returns>
        public static List<ChiTietThietBiHoaDonDTO> ChiTietThietBiHoaDon_GetAll()
        {
            List<ChiTietThietBiHoaDonDTO> dscttbDto = new List<ChiTietThietBiHoaDonDTO>();
            try
            {
                ChiTietThietBiHoaDonBUS m_Handle = new ChiTietThietBiHoaDonBUS();
                dscttbDto = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietThietBiHoaDon_GetAll", ex);
            }
            return dscttbDto;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lấy 1 đối tượng ChiTietThietBiHoaDon theo khóa chính
        /// </summary>
        /// <param name="ID">mã đối tượng ChiTietThietBiHoaDon</param>
        /// <returns></returns>
        public static ChiTietThietBiHoaDonDTO ChiTietThietBiHoaDon_SelectByPrimaryKey(int ID)
        {
            ChiTietThietBiHoaDonDTO ctspDto = new ChiTietThietBiHoaDonDTO();
            try
            {
                ChiTietThietBiHoaDonBUS m_Handle = new ChiTietThietBiHoaDonBUS();
                ctspDto = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ChiTietThietBiHoaDon_SelectByPrimaryKey", ex);
            }
            return ctspDto;
        }
        #endregion

        #endregion

        #region "[HoaDon]"


        #region "[Insert]"
        /// <summary>
        /// Thêm 1 đối tượng HoaDon
        /// </summary>
        /// <param name="hdDto">đối tượng HoaDon cần thêm</param>
        /// <returns></returns>
        public static int HoaDon_Insert(HoaDonDTO hdDto)
        {
            int IDResult = -1;
            try
            {
                HoaDonBUS m_Handle = new HoaDonBUS();
                IDResult = m_Handle.Insert(hdDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("HoaDon_Insert", ex);
            }
            return IDResult;

        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng HoaDon cần xóa
        /// </summary>
        /// <param name="ID">mã đối tượng HoaDon cần xóa</param>
        /// <returns></returns>
        public static bool HoaDon_Delete(int ID)
        {
            // Kiem tra Business Rule



            // Xoa
            bool IDResult = false;
            try
            {
                HoaDonBUS m_Handle = new HoaDonBUS();
                IDResult = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("HoaDon_Delete", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Update]"
        /// <summary>
        /// Cập nhật 1 đối tượng HoaDon
        /// </summary>
        /// <param name="hdDto">đối tượng HoaDon cần cập nhật</param>
        /// <returns></returns>
        public static bool HoaDon_Update(HoaDonDTO hdDto)
        {
            // Kiem tra Business Rule



            // Sua
            bool IDResult = false;
            try
            {
                HoaDonBUS m_Handle = new HoaDonBUS();
                IDResult = m_Handle.Update(hdDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("HoaDon_Update", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng HoaDon
        /// </summary>
        /// <returns></returns>
        public static List<HoaDonDTO> HoaDon_GetAll()
        {
            List<HoaDonDTO> dshdDto = new List<HoaDonDTO>();
            try
            {
                HoaDonBUS m_Handle = new HoaDonBUS();
                dshdDto = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("HoaDon_GetAll", ex);
            }
            return dshdDto;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lấy 1 đối tượng HoaDon
        /// </summary>
        /// <param name="ID">mã đối tượng HoaDon</param>
        /// <returns></returns>
        public static HoaDonDTO HoaDon_SelectByPrimaryKey(int ID)
        {
            HoaDonDTO cthdDto = new HoaDonDTO();
            try
            {
                HoaDonBUS m_Handle = new HoaDonBUS();
                cthdDto = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("HoaDon_SelectByPrimaryKey", ex);
            }
            return cthdDto;
        }
        #endregion

        #endregion

        #region "[LoaiSanPham]"
        #region "[Insert]"
        /// <summary>
        /// Thêm 1 đối tượng LoaiSanPham
        /// </summary>
        /// <param name="lspDto">đối tượng LoaiSanPham cần thêm</param>
        /// <returns></returns>
        public static  int LoaiSanPham_Insert(LoaiSanPhamDTO lspDto)
        {
            // Kiem tra Business Rule



            // Them
            int IDResult = -1;
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                IDResult = m_Handle.Insert(lspDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_Insert", ex);
            }
            return IDResult;

        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng LoaiSanPham
        /// </summary>
        /// <param name="ID">Mã đối tượng LoaiSanPham</param>
        /// <returns></returns>
        public static bool LoaiSanPham_Delete(int ID)
        {
            // Kiem tra Business Rule



            // Xoa
            bool IDResult = false;
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                IDResult = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_Delete", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Update]"
        /// <summary>
        /// Cập nhật 1 đối tượng LoaiSanPham
        /// </summary>
        /// <param name="lspDto">đối tượng LoaiSanPham cần cập nhật</param>
        /// <returns></returns>
        public static bool LoaiSanPham_Update(LoaiSanPhamDTO lspDto)
        {
            // Kiem tra Business Rule



            // Sua
            bool IDResult = false;
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                IDResult = m_Handle.Update(lspDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_Update", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng LoaiSanPham
        /// </summary>
        /// <returns></returns>
        public static List<LoaiSanPhamDTO> LoaiSanPham_GetAll()
        {
            List<LoaiSanPhamDTO> dslspDto = new List<LoaiSanPhamDTO>();
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                dslspDto = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_GetAll", ex);
            }
            return dslspDto;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lây 1 đối tượng LoaiSanPham
        /// </summary>
        /// <param name="ID">mã đối tượng LoaiSanPham</param>
        /// <returns></returns>
        public static LoaiSanPhamDTO LoaiSanPham_SelectByPrimaryKey(int ID)
        {
            LoaiSanPhamDTO lspDto = new LoaiSanPhamDTO();
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                lspDto = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_SelectByPrimaryKey", ex);
            }
            return lspDto;
        }
        #endregion

        #region "[SelectByLoaiSanPhamChinhID]"
        public static List<LoaiSanPhamDTO> LoaiSanPham_SelectByLoaiSanPhamChinhID(int ID)
        {
            List<LoaiSanPhamDTO> ds_lspDto = new List<LoaiSanPhamDTO>();
            try
            {
                LoaiSanPhamBUS m_Handle = new LoaiSanPhamBUS();
                ds_lspDto = m_Handle.SelectByLoaiSanPhamChinhID(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPham_SelectByLoaiSanPhamChinhID", ex);
            }
            return ds_lspDto;
        }
        #endregion

        #endregion

        #region "[SanPham]"

        #region "[Insert]"

        /// <summary>
        /// Thêm 1 đối tượng SanPham
        /// </summary>
        /// <param name="spDto">đối tượng SanPham cần thêm</param>
        /// <returns></returns>
        public static int SanPham_Insert(SanPhamDTO spDto)
        {
            // Kiem tra Business Rule



            // Them
            int IDResult = -1;
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                IDResult = m_Handle.Insert(spDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_Insert", ex);
            }
            return IDResult;

        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng SanPham
        /// </summary>
        /// <param name="ID">Mã đối tượng SanPham cần xóa</param>
        /// <returns></returns>
        public static bool SanPham_Delete(int ID)
        {
            // Kiem tra Business Rule



            // Xoa
            bool IDResult = false;
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                IDResult = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_Delete", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Update]"
        /// <summary>
        /// cập nhật 1 đối tượng SanPham
        /// </summary>
        /// <param name="spDto">đối tượng SanPham cần cập nhật</param>
        /// <returns></returns>
        public static bool SanPham_Update(SanPhamDTO spDto)
        {
            // Kiem tra Business Rule



            // Sua
            bool IDResult = false;
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                IDResult = m_Handle.Update(spDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_Update", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng SanPham
        /// </summary>
        /// <returns></returns>
        public static List<SanPhamDTO> SanPham_GetAll()
        {
            List<SanPhamDTO> dsspDto = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                dsspDto = m_Handle.GetAllPin();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_GetAll", ex);
            }
            return dsspDto;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lấy 1 đối tượng SanPham Theo khóa chính
        /// </summary>
        /// <param name="ID">Mã đối tượng SanPham</param>
        /// <returns></returns>
        public static SanPhamDTO SanPham_SelectByPrimaryKey(int ID)
        {
            SanPhamDTO spDto = new SanPhamDTO();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                spDto = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_SelectByPrimaryKey", ex);
            }
            return spDto;
        }
        #endregion

        #region "[Lấy danh sách sản phẩm từ file excel]"
        /// <summary>
        /// Lấy danh sách sản phẩm từ file excel
        /// </summary>
        /// <param name="_strLocation">đường dẫn đến file excel</param>
        /// <param name="_iSheet">tên sheet vd: sheet 1 thì là: 1</param>
        /// <returns>danh sách các đối tượng ThietBiDienDTO</returns>
        public static  ACK.SanPhamACK SanPham_GetListFromFileExcel(string _strLocation, int _iSheet)
        {
            ACK.SanPhamACK objResult = null;
            try { 
                 SanPhamBUS m_Handle = new SanPhamBUS();
                 objResult = m_Handle.GetListFromFileExcel(_strLocation, _iSheet);
            }
            catch { }
            return objResult;
        }
        #endregion

        #region "[SelectByMulti]"// Cao Hoang An - 1241301
        /// <summary>
        /// Lấy danh sách các đối tượng SanPham trên nhiêu tiêu chi
        /// </summary>
        /// <returns></returns>
        public static List<SanPhamDTO> SanPham_SelectByMulti(bool flagNumberic, object Data, int LoaiSanPhamChinhID)
        {
            List<SanPhamDTO> dsspDto = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                dsspDto = m_Handle.SelectByMulti(flagNumberic,Data,LoaiSanPhamChinhID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SanPham_SelectByMulti", ex);
            }
            return dsspDto;
        }
        #endregion

        #region "[SelectByLoaiSanPhamID]"// Cao Hoang An - 1241301
        //TimKiem san pham theo LoaiSanPhamID
        public static List<SanPhamDTO> SelectByLoaiSanPhamID(int LoaiSanPhamID)
        {
            List<SanPhamDTO> dsspDto = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                dsspDto = m_Handle.SelectByLoaiSanPhamID(LoaiSanPhamID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SelectByLoaiSanPhamID", ex);
            }
            return dsspDto;
        }
        #endregion

        #region "[TimKiemTuVanPinNangLuong]"// tran ha nguyen thang
        //TimKiem san pham theo LoaiSanPhamID
        public static List<SanPhamDTO> TimKiemTuVanPinNangLuong(double condsuat, int ID1, int ID2, int ID3)
        {
            List<SanPhamDTO> dsspDto = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                dsspDto = m_Handle.TimKiemTuVanPinNangLuong(condsuat, ID1, ID2, ID3);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SelectByLoaiSanPhamID", ex);
            }
            return dsspDto;
        }
        #endregion

        #region "[TimKiemTuVanBoDieuKhienXac]"// tran ha nguyen thang
        //TimKiem san pham theo LoaiSanPhamID
        public static List<SanPhamDTO> TimKiemTuVanBoDieuKhienXac(double Isc_max)
        {
            List<SanPhamDTO> dsspDto = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                dsspDto = m_Handle.TimKiemTuVanBoDieuKhienXac(Isc_max);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("SelectByLoaiSanPhamID", ex);
            }
            return dsspDto;
        }
        #endregion

        #endregion

        #region "[ThietBiDien]"

        #region "[Insert]"
        /// <summary>
        /// Thêm 1 đối tượng ThietBiDien
        /// </summary>
        /// <param name="tbdDto">đối tượng ThietBiDien cần thêm</param>
        /// <returns></returns>
        public static int ThietBiDien_Insert(ThietBiDienDTO tbdDto)
        {
            int IDResult = -1;
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                IDResult = m_Handle.Insert(tbdDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_Insert", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Delete]"
        /// <summary>
        /// Xóa 1 đối tượng ThietBiDien
        /// </summary>
        /// <param name="ID">Mã đối tượng ThietBiDien càn xóa</param>
        /// <returns></returns>
        public static bool ThietBiDien_Delete(int ID)
        {
            bool isSuccess = false;
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                isSuccess = m_Handle.Delete(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_Delete", ex);
            }
            return isSuccess;
        }
        #endregion

        #region "[Update]"
        /// <summary>
        /// Cập nhật 1 đối tượng ThietBiDien
        /// </summary>
        /// <param name="tbdDto">đối tượng ThietBiDien cần cập nhật</param>
        /// <returns></returns>
        public static bool ThietBiDien_Update(ThietBiDienDTO tbdDto)
        {
            bool isSuccess = false;
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                isSuccess = m_Handle.Update(tbdDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_Update", ex);
            }
            return isSuccess;
        }
        #endregion

        #region "[Get all]"
        /// <summary>
        /// Lấy danh sách các đối tượng ThietBiDien
        /// </summary>
        /// <returns></returns>
        public static List<ThietBiDienDTO> ThietBiDien_GetAll()
        {
            List<ThietBiDienDTO> listobjs = new List<ThietBiDienDTO>();
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                listobjs = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_GetAll", ex);
            }
            return listobjs;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        /// <summary>
        /// Lấy 1 dối tượng ThietBiDien theo khóa chính
        /// </summary>
        /// <param name="ID">Mã đối tượng ThietBiDien</param>
        /// <returns></returns>
        public static ThietBiDienDTO ThietBiDien_SelectByPrimaryKey(int ID)
        {
            ThietBiDienDTO obj = null;
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                obj = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_SelectByPrimaryKey", ex);
            }
            return obj;
        }

        #endregion

        #region "[Lấy danh sách các thiết bị điện từ file excel]"
        /// <summary>
        /// Lấy danh sách các thiết bị điện từ file excel
        /// </summary>
        /// <param name="_strLocation">đường dẫn đến file excel</param>
        /// <param name="_iSheet">tên sheet</param>
        /// <returns></returns>
        public static List<ThietBiDienDTO> ThietBiDien_GetListFromFileExcel(string _strLocation, int _iSheet)
        {
            List<ThietBiDienDTO> listResult = new List<ThietBiDienDTO>();
            try { 
                 ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                 listResult = m_Handle.GetListFromFileExcel(_strLocation, _iSheet);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_GetListFromFileExcel", ex);
            }
            return listResult;
        }
        #endregion

        #region "[Insert danh sách các thiết bị điện xuống CSDL]"
        /// <summary>
        /// Insert danh sách các thiết bị điện xuống CSDL
        /// </summary>
        /// <param name="_listInput">dan sách các thiết bị điện</param>
        /// <returns></returns>
        public static ACK.SanPham_ThietBiDienACK ThietBiDien_InsertListThietBiDien(List<ThietBiDienDTO> _listInput)
        {
            ACK.SanPham_ThietBiDienACK listObj = new ACK.SanPham_ThietBiDienACK();
            try
            {
                  ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                  listObj = m_Handle.InsertListThietBiDien(_listInput);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("ThietBiDien_InsertListThietBiDien", ex);
            }
            return listObj;
        }

        #endregion

        #region "[TimKiemThietBiDien]"// Doan Phu An- 1241302
        public static List<ThietBiDienDTO> TimKiemThietBiDien(string ChuoiTimKiem)
        {
            List<ThietBiDienDTO> ds_tbd = new List<ThietBiDienDTO>();
            try
            {
                ThietBiDienBUS m_Handle = new ThietBiDienBUS();
                ds_tbd = m_Handle.TimKiemThietBiDien(ChuoiTimKiem); 
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("TimKiemThietBiDien", ex);
            }
            return ds_tbd;
        }
        
        #endregion

        #endregion

        #region "[LoaiSanPhamChinh]"
        #region "[Insert]"
        public static int LoaiSanPhamChinh_Insert(LoaiSanPhamChinhDTO _obj)
        {
            int IDResult = -1;
            try
            {
                LoaiSanPhamChinhBUS m_Handle = new LoaiSanPhamChinhBUS();
                IDResult = m_Handle.Insert(_obj);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPhamChinh_Insert", ex);
            }
            return IDResult;
        }
        #endregion

        #region "[Delete]"
        public static bool LoaiSanPhamChinh_Delete(int _ID)
        {
            bool isSuccess = false;
            try
            {
                LoaiSanPhamChinhBUS m_Handle = new LoaiSanPhamChinhBUS();
                isSuccess = m_Handle.Delete(_ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPhamChinh_Delete", ex);
            }
            return isSuccess;
        }
        #endregion

        #region "[Update]"
        public static bool LoaiSanPhamChinh_Update(LoaiSanPhamChinhDTO _obj)
        {
            bool isSuccess = false;
            try
            {
                LoaiSanPhamChinhBUS m_Handle = new LoaiSanPhamChinhBUS();
                isSuccess = m_Handle.Update(_obj);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPhamChinh_Update", ex);
            }
            return isSuccess;
        }
        #endregion

        #region "[GetAll]"
        public static List<LoaiSanPhamChinhDTO> LoaiSanPhamChinh_GetAll()
        {
            List<LoaiSanPhamChinhDTO> listObjs = new List<LoaiSanPhamChinhDTO>();
            try
            {
                LoaiSanPhamChinhBUS m_Handle = new LoaiSanPhamChinhBUS();
                listObjs = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPhamChinh_GetAll", ex);
            }
            return listObjs;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        public static LoaiSanPhamChinhDTO LoaiSanPhamChinh_SelectByPrimaryKey(int _ID)
        {
            LoaiSanPhamChinhDTO objResult = null;
            try
            {
                LoaiSanPhamChinhBUS m_Handle = new LoaiSanPhamChinhBUS();
                objResult = m_Handle.SelectByPrimaryKey(_ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoaiSanPhamChinh_SelectByPrimaryKey", ex);
            }
            return objResult;
        }
        #endregion
        #endregion

        #region "[Cấu hình đường dẫn]"
        /// <summary>
        /// Người tạo: MrChau
        /// Cấu hình đường dẩn đến CSDL
        /// </summary>
        /// <param name="_strLocation"></param>
        public static void CauHinh(string _strLocation)
        {
            try {
                NangLuongTieuDiemDAO.DataHelper.SqlDataHelper.cnStr = _strLocation;
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("CauHinh", ex);
            }
        }
        #endregion

        #region "[Backup CSDL]"
        /// <summary>
        /// Người tạo: Cao Hoang An - 1241301
        /// Backup CSDL
        /// </summary>
        /// <param name="_strLocation"></param>
        public static bool Backup(string _strLocation)
        {
                return NangLuongTieuDiemDAO.DataHelper.SqlDataHelper.Backup(_strLocation);
        }
        #endregion

        #region "[Restore CSDL]"
        /// <summary>
        /// Người tạo: Cao Hoang An - 1241301
        /// Restore CSDL
        /// </summary>
        /// <param name="_strLocation"></param>
        public static bool Restore(string _strLocation)
        {
            return NangLuongTieuDiemDAO.DataHelper.SqlDataHelper.Restore(_strLocation);
        }
        #endregion

        #region "[Lỗi Hệ Thống]"
        #region "[Insert]"
        public static void LoiHeThong_Insert(LoiHeThongDTO lhtDto)
        {
            try
            {
                LoiHeThongBUS m_Handle = new LoiHeThongBUS();
                m_Handle.Insert(lhtDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoiHeThong_Insert", ex);
            }
        }
        #endregion
        #region "[Update]"
        public static Boolean LoiHeThong_Update(LoiHeThongDTO lhtDto)
        {
            bool isSuccess = false;
            try
            {
                LoiHeThongBUS m_Handle = new LoiHeThongBUS();
                isSuccess = m_Handle.Update(lhtDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoiHeThong_Update", ex);
            }
            return isSuccess;
        }
        #endregion
        #region "[Update]"
        public static bool LoiHeThong_Delete(LoiHeThongDTO lhtDto)
        {
            bool isSuccess = false;
            try
            {
                LoiHeThongBUS m_Handle = new LoiHeThongBUS();
                isSuccess = m_Handle.Update(lhtDto);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoiHeThong_Delete", ex);
            }
            return isSuccess;
        }
        #endregion

        #region "[GetAll]"
        public static List<LoiHeThongDTO> LoiHeThong_GetAll()
        {
            List<LoiHeThongDTO> ds_lht = new List<LoiHeThongDTO>();
            try
            {
                LoiHeThongBUS m_Handle = new LoiHeThongBUS();
                ds_lht = m_Handle.GetAll();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong(" LoiHeThong_GetAll", ex);
            }
            return ds_lht;
        }
        #endregion

        #region "[SelectByPrimaryKey]"
        public static LoiHeThongDTO LoiHeThong_SelectByPrimaryKey(int ID)
        {
            LoiHeThongDTO lht = null;
            try
            {
                LoiHeThongBUS m_Handle = new LoiHeThongBUS();
                lht = m_Handle.SelectByPrimaryKey(ID);
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("LoiHeThong_SelectByPrimaryKey", ex);
            }
            return lht;
        }
        #endregion

        #endregion

        #region "[Hàm insert lỗi hệ thống]"
        public static void InSert_LoiHeThong(string TenHam, Exception ex)
        {
            LoiHeThongDTO lhtDto = new LoiHeThongDTO();
            lhtDto.TenLoi = ex.Message.ToString();
            lhtDto.NgayTao = DateTime.Now;
            lhtDto.TenHamBiLoi = "NangLuongTieuDiem_Management_" + TenHam;
            lhtDto.SuaLoi = false;
            lhtDto.GhiChu = "";
            LoiHeThong_Insert(lhtDto);
           
        }
        #endregion

        #region "[Lấy danh sách các thiết bị điện]"
        /// <summary>
        /// Lấy danh sách các thiết bị điện
        /// </summary>
        /// <returns></returns>
        public static List<SanPham_ThietBiDienSDK> SanPham_GetAllElectrialEquipment()
        {
            List<SanPham_ThietBiDienSDK> listObjs = new List<SanPham_ThietBiDienSDK>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                listObjs = m_Handle.GetAllElectrialEquipment();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("GetAllElectrialEquipment", ex);
            }
            return listObjs;
        }
        #endregion

        #region "[Lấy danh sách các bộ điều khiển sạc]"
        /// <summary>
        /// Lấy danh sách các bộ điều khiển sạc
        /// </summary>
        /// <returns></returns>
        public static List<SanPham_BoDieuKhienSacSDK> SanPham_GetAllChargeController()
        {
            List<SanPham_BoDieuKhienSacSDK> listObjs = new List<SanPham_BoDieuKhienSacSDK>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                listObjs = m_Handle.GetAllChargeController();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("GetAllChargeController", ex);
            }
            return listObjs;
        }
        #endregion

        #region "[Lấy danh sách các tấm Pin ứng với công suất]"
        /// <summary>
        /// Lấy danh sách các tấm Pin ứng với công suất
        /// </summary>
        /// <param name="_PowerValue">Tổng công suất các thiết bị</param>
        /// <param name="_PinType">loại Pin</param>
        /// <returns></returns>
        public static List<SanPhamDTO> SanPham_GetListPinByPower(double _PowerValue, int _PinType)
        {
            List<SanPhamDTO> listPinResult = new List<SanPhamDTO>();
            try
            {
                SanPhamBUS m_handle = new SanPhamBUS();
                listPinResult = m_handle.GetListPinByPower(_PowerValue, _PinType);
            }
            catch { }
            return listPinResult;
        }
        #endregion

        #region "[Lấy danh sách các bình acquy]"
        /// <summary>
        /// Lấy danh sách các bình acquy
        /// </summary>
        /// <returns></returns>
        public static List<SanPham_AcquySDK> SanPham_GetAllAcquy()
        {
            List<SanPham_AcquySDK> listObjs = new List<SanPham_AcquySDK>();
            try
            {
                SanPhamBUS m_handle = new SanPhamBUS();
                listObjs = m_handle.GetAllAcquy();
            }
            catch (Exception ex)
            {
                InSert_LoiHeThong("GetAllAcquy", ex);
            }
            return listObjs;
        }
        #endregion

        #region "[chọn danh sách các bình acquy phù hợp với công suất pin]"
        /// <summary>
        /// chọn danh sách các bình acquy phù hợp với công suất pin
        /// </summary>
        /// <param name="_PinPower">công suất tấm pin</param>
        /// <returns></returns>
        public static List<SanPham_AcquySDK> SanPham_GetListAcquyByPinPower(double _PinPower)
        {
            List<SanPham_AcquySDK> listResult = new List<SanPham_AcquySDK>();
            try
            {
                SanPhamBUS m_Hanlde = new SanPhamBUS();
                listResult = m_Hanlde.GetListAcquyByPinPower(_PinPower);
            }
            catch { }
            return listResult;
        }
        #endregion

        #region "[Lấy bộ điều khiển sạc đáp ứng công suất pin]"
        /// <summary>
        /// Lấy bộ điều khiển sạc đáp ứng công suất pin
        /// </summary>
        /// <param name="_PinPower">công suất tấm Pin</param>
        /// <returns></returns>
        public static SanPham_BoDieuKhienSacSDK SanPham_GetChargeControllerByPinPower(double _PinPower)
        {
            SanPham_BoDieuKhienSacSDK objResult = null;
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                objResult = m_Handle.GetChargeControllerByPinPower(_PinPower);
            }
            catch { }
            return objResult;
        }
        #endregion

        #region "[Lấy Danh sách các kích điện]"
        /// <summary>
        /// Lấy Danh sách các kích điện
        /// </summary>
        /// <returns></returns>
        public static List<SanPham_KichDienSDK> SanPham_GetListChangeDCAC()
        {
            List<SanPham_KichDienSDK> listResult = new List<SanPham_KichDienSDK>();
            try
            {
                SanPhamBUS m_Handle = new SanPhamBUS();
                listResult = m_Handle.GetListChangeDCAC();
            }
            catch { } return listResult;
        }
        #endregion

        #region "[GetAll]"
        public static List<SoGioNangDTO> SoGioNang_GetAll()
        {
            List<SoGioNangDTO> listResult = new List<SoGioNangDTO>();
            try
            {
                SoGioNangBUS m_Handle = new SoGioNangBUS();
                listResult = m_Handle.GetAll();
            }
            catch { }
            return listResult;
        }
        #endregion
    }
}
